package com.mycompany.myapp.service;

import com.mycompany.myapp.domain.Collection;
import com.mycompany.myapp.service.dto.CollectionDTO;
import com.mycompany.myapp.web.rest.utils.ResultObj;

import java.util.List;
import java.util.Optional;

/**
 * Service Interface for managing {@link com.mycompany.myapp.domain.Collection}.
 */
public interface CollectionService {

    /**
     * Save a collection.
     *
     * @param collectionDTO the entity to save.
     * @return the persisted entity.
     */
    CollectionDTO save(CollectionDTO collectionDTO);

    /**
     * Get all the collections.
     *
     * @return the list of entities.
     */
    List<CollectionDTO> findAll();


    /**
     * Get the "id" collection.
     *
     * @param id the id of the entity.
     * @return the entity.
     */
    Optional<CollectionDTO> findOne(Long id);

    /**
     * Delete the "id" collection.
     *
     * @param id the id of the entity.
     */
    void delete(Long id);

    List<Collection> findByUserId(Long userId);

    ResultObj createCollection(CollectionDTO collectionDTO);

    ResultObj deleteCollections(List<Long> collections);
}
